# @Time:2021/6/15 16:37
# @Author:5120195554王欣霏
# -*- coding = utf-8 -*-

import pygame
import os
import actor
import random
from dialog.elder3_dialog import Elder3Dialog


class Elder3(pygame.sprite.Sprite):
    def __init__(self, init_pos_x, init_pos_y):  # 载入图片资源并设置位置信息
        pygame.sprite.Sprite.__init__(self)  # 调用父类的构造函数

        # 多张图片载入的时候 这样写就不行了
        # img_path = os.path.join("../resource","img","swk","00000.tga") #.tga是动画格式 帧格式
        # self.swk_image = pygame.image.load(img_path)

        # 1.这里的pos_x和pos_y只是相对于窗体来说的 不是相对于图片来说的
        # 2.改进后的pos_x和pos_y就是全局位置了
        self.elder3_pos_x = init_pos_x
        self.elder3_pos_y = init_pos_y

        img_path = os.path.join('../resource', 'img', 'elder', 'elder3-00000.tga')
        self.image = pygame.image.load(img_path)

        # 增加elder3的rect属性
        self.width = 90
        self.height = 111
        self.rect = pygame.Rect(self.elder3_pos_x, self.elder3_pos_y, self.width, self.height)

        self.is_stop = False

        # 设置对话框
        self.dialog = Elder3Dialog()

    def draw(self, surface: pygame.Surface, win_posx, win_posy):  # 将精灵画在surface上  第三四个参数是窗体相较于图片的偏移位置
        # current_frame = self.get_curr_frame() #取出当前应该画的图片
        # current_frame = self.walk_frames.get_curr_frame(self.dir)
        current_frame = self.image
        # elder3_pos_x和elder3_pos_y是全局位置   用全局位置-窗体位置就可以得到elder3在屏幕中的偏移
        surface.blit(current_frame, (self.elder3_pos_x - win_posx, self.elder3_pos_y - win_posy))

        # 当孙悟空碰到elder3时 显示对话框
        if self.is_stop:
            surface.blit(self.dialog.surface,
                         (self.elder3_pos_x - win_posx, self.elder3_pos_y - win_posy - 150))  # 为了不和elder3重叠 将对话框向上移一点

    # 碰撞上了
    def collide(self, sprite):
        if pygame.sprite.collide_rect(sprite, self):  # 当碰撞上了就将is_stop赋为true
            self.is_stop = True
            return True
        else:
            self.is_stop = False
            return False
